package br.com.foxinline.servico;

import br.com.foxinline.modelo.Distribuicao;
import br.com.foxinline.modelo.DistribuicaoItem;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;


/**
 *
 * @author cadomeireles
 */
@Stateless
public class DistribuicaoServico extends ServicoGenerico<Distribuicao> {
    
    public DistribuicaoServico() {
        super(Distribuicao.class);
    }

    public List<Distribuicao> pesquisar(Distribuicao distribuicao) {
        String sql = "select distribuicao from Distribuicao distribuicao where distribuicao.status = true";

        if (distribuicao.getRecebedor() != null) {
            sql += " and distribuicao.recebedor = :recebedor";
        }

        if (distribuicao.getDataDistribuicao() != null) {
            sql += " and distribuicao.dataDistribuicao = :data";
        }

        Query query = getEntityManager().createQuery(sql);
        
        if (distribuicao.getRecebedor() != null) {
            query.setParameter("recebedor", distribuicao.getRecebedor());
        }

        if (distribuicao.getDataDistribuicao() != null) {
            query.setParameter("data", distribuicao.getDataDistribuicao());
        }        

        return query.getResultList();
    }
    
    public List<DistribuicaoItem> obterItens(Distribuicao distribuicao) {

        String sql = "select distribuicao.distribuicaoItens from Distribuicao distribuicao where distribuicao.status = true";

        if (distribuicao != null && distribuicao.getId() != null) {
            sql += " and distribuicao = :distribuicao";
        }

        Query query = getEntityManager().createQuery(sql);

        if (distribuicao.getRecebedor() != null) {
            query.setParameter("distribuicao", distribuicao);
        }     

        return query.getResultList();
    }

}
